As demand for multicast services continues to grow, service providers continue to seek low-cost, bandwidth-efficient, and fault-resilient multicast transport capabilities for supporting multicast services. In existing multicast transport networks, multicast services are provided using replication at the network edge, which causes inefficient usage of network bandwidth. In an attempt to alleviate the bandwidth inefficiency problem for multicast, many providers are proposing use of point-to-multipoint (P2MP) trees for multicast. The use of P2MP trees, however, is not sufficient to ensure fault-resilient multicast services in a transport network that has a shared risk link group (SRLG) for which failure of one link of the SRLG may cause failure of one or more other links of the SRLG. In such networks, some additional form of protection must be used to provide fault-resilient protection of the SRLGs. Disadvantageously, however, the problem of providing protection for SRLGs is quite difficult, because the problem of finding two SRLG disjoint paths from a source to a destination is NP-hard and, thus, the problem of finding two P2MP trees that provide SRLG protection also is NP-hard.